package com.huatai.manage.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huatai.common.util.StringUtil;
import com.huatai.manage.entity.TbSpecialEffectEntity;
import com.huatai.manage.entity.TbTrialLabelEntity;
import com.huatai.manage.mapper.TbSpecialEffectMapper;
import com.huatai.manage.query.PageQuery;
import com.huatai.manage.service.TbSpecialEffectService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 特效管理; 服务实现类
 * </p>
 *
 * @author luoxc
 * @since 2023-03-21
 */
@Service
public class TbSpecialEffectServiceImpl extends ServiceImpl<TbSpecialEffectMapper, TbSpecialEffectEntity> implements TbSpecialEffectService {

	/**
	 * 根据特效id修改数据
	 *
	 * @param tbSpecialEffectEntity
	 * @return
	 */
	@Override
	public boolean update(TbSpecialEffectEntity tbSpecialEffectEntity) {
		LambdaUpdateWrapper<TbSpecialEffectEntity> wrapper = Wrappers.<TbSpecialEffectEntity>lambdaUpdate().eq(TbSpecialEffectEntity::getEffectId, tbSpecialEffectEntity.getEffectId());
		return this.update(tbSpecialEffectEntity, wrapper);
	}


	/**
	 * 分页获取特效列表
	 *
	 * @param pageQuery
	 * @return
	 */
	@Override
	public Page<TbSpecialEffectEntity> pageList(PageQuery<TbSpecialEffectEntity> pageQuery) {
		Page<TbSpecialEffectEntity> page = new Page<>(pageQuery.getCurrent(), pageQuery.getSize());
		String effectName = pageQuery.getData().getEffectName();
		String effectType = pageQuery.getData().getEffectType();
		LambdaQueryWrapper<TbSpecialEffectEntity> wrapper = Wrappers.<TbSpecialEffectEntity>lambdaQuery()
			//.eq(StringUtil.isNotBlank(effectType), TbSpecialEffectEntity::getEffectType, effectType)
			.like(StringUtil.isNotBlank(effectName), TbSpecialEffectEntity::getEffectName, effectName);
		return this.page(page, wrapper);
	}

	/**
	 * 根据特效id获取信息
	 *
	 * @param effectId
	 * @return
	 */
	@Override
	public TbSpecialEffectEntity getByEffectId(String effectId) {
		return this.getOne(Wrappers.<TbSpecialEffectEntity>lambdaQuery().eq(TbSpecialEffectEntity::getEffectId, effectId));
	}

	/**
	 * 根据特效id集合删除信息
	 *
	 * @param effectIds
	 * @return
	 */
	@Override
	public boolean removes(List<String> effectIds) {
		if (effectIds.isEmpty()) return false;
		return this.remove(Wrappers.<TbSpecialEffectEntity>lambdaQuery().in(TbSpecialEffectEntity::getEffectId, effectIds));
	}

	/**
	 * @return
	 * @Description 通过特效类型查询数据
	 * @Date 2023/4/4 13:28
	 * @Param effectType
	 */
	@Override
	public List<TbSpecialEffectEntity> getByTopicType(String effectType) {
		LambdaQueryWrapper<TbSpecialEffectEntity> wrapper = Wrappers.lambdaQuery();
		wrapper.eq(TbSpecialEffectEntity::getEffectType, effectType);
		return this.list(wrapper);
	}

	/**
	 * 判断数据是否存在
	 *
	 * @param effectId
	 * @return
	 */
	@Override
	public boolean isExist(String effectId) {
		long count =
			this.count(Wrappers.<TbSpecialEffectEntity>lambdaQuery().eq(TbSpecialEffectEntity::getEffectId, effectId));
		return count > 0;
	}

}
